#!/bin/sh

# 使用说明，用来提示输入参数
usage() {
	echo "Usage: sh 执行脚本.sh [port|base|modules|edsta|stop|rm|restart name|]"
	exit 1
}

# 开启所需端口
port(){
	firewall-cmd --add-port=19000/tcp --permanent
	firewall-cmd --add-port=19100/tcp --permanent
	firewall-cmd --add-port=8848/tcp --permanent
	firewall-cmd --add-port=9848/tcp --permanent
	firewall-cmd --add-port=9849/tcp --permanent
	firewall-cmd --add-port=25557/tcp --permanent
	firewall-cmd --add-port=7091/tcp --permanent
	firewall-cmd --add-port=3306/tcp --permanent
	firewall-cmd --add-port=9000/tcp --permanent
	firewall-cmd --add-port=9001/tcp --permanent
	firewall-cmd --add-port=18858/tcp --permanent
	firewall-cmd --add-port=19200/tcp --permanent
	firewall-cmd --add-port=19300/tcp --permanent
	firewall-cmd --add-port=19303/tcp --permanent
	service firewalld restart
}

# 启动基础环境（必须）
base(){
	docker-compose up -d edsta-mysql edsta-redis edsta-nacos edsta-minio edsta-seata sentinel-dashboard
}

# 启动程序模块（必须）
modules(){
	docker-compose up -d edsta-gateway edsta-auth edsta-modules-file edsta-modules-system edsta-nginx edsta-monitor
}

# 启动edsta七大后端服务模块（必须）
edsta(){
	docker-compose up -d edsta-modules-csharpserver edsta-modules-simulation \
	edsta-modules-signalanalysis edsta-modules-testability edsta-modules-reliability \
	edsta-modules-circuitdesign edsta-modules-driveradapt edsta-modules-diagnosispredict \
	edsta-modules-cae edsta-modules-pcba edsta-modules-reliabilitylog
}

# 重启指定容器
#restart(name){
#  docker restart name
#}

# 关闭所有环境/模块
stop(){
	docker-compose stop
}

# 删除所有环境/模块
rm(){
	docker-compose rm
}

# 根据输入参数，选择执行对应方法，不输入则执行使用说明
case "$1" in
"port")
	port
;;
"base")
	base
;;
"modules")
	modules
;;
"edsta")
	edsta
;;
"stop")
	stop
;;
"rm")
	rm
;;
#"restart")
#	restart("$2")
#;;
*)
	usage
;;
esac
